package me.a01myfunction;

import java.util.Arrays;
import java.util.Comparator;

public class FunctionDemo1 {
    public static void main(String[] args) {
        //方法引用
        //把已经存在的方法拿过来用，当做函数式接口中抽象方法的方法体
        //需求：创建一个数组，倒序排列
        Integer[] arr = {1, 4, 6, 3, 5, 2};

        //用多种方式排列
        //1.匿名内部类
       /* Arrays.sort(arr, new Comparator<Integer>() {
            @Override
            public int compare(Integer o1, Integer o2) {
                return o2 - o1;
            }
        });*/

        //2.lambda表达式
        /*Arrays.sort(arr, (Integer o1, Integer o2)-> {
                return o2 - o1;
        });*/
        //3.lambda表达式简化
        //Arrays.sort(arr, (o1, o2) -> o2 - o1);

        //4.方法引用
        //引用FunctionDemo1类里的subtraction方法，把这个方法当做抽象方法的方法体
        Arrays.sort(arr, FunctionDemo1::subtraction);
        System.out.println(Arrays.toString(arr));
    }

    public static int subtraction(int num1, int num2) {
        return num2 - num1;
    }
}
